home *** CD-ROM | disk | FTP | other *** search
/ Sprite 1984 - 1993 / Sprite 1984 - 1993.iso / src / lib / tclX6.4c / dist / tests / select.test < prev    next >
Encoding:
Text File  |  1992-11-07  |  3.4 KB  |  97 lines

  1. #
  2. # select.test
  3. #
  4. # Tests for the select command.
  5. #---------------------------------------------------------------------------
  6. # Copyright 1992 Karl Lehenbauer and Mark Diekhans.
  7. #
  8. # Permission to use, copy, modify, and distribute this software and its
  9. # documentation for any purpose and without fee is hereby granted, provided
  10. # that the above copyright notice appear in all copies.  Karl Lehenbauer and
  11. # Mark Diekhans make no representations about the suitability of this
  12. # software for any purpose.  It is provided "as is" without express or
  13. # implied warranty.
  14. #------------------------------------------------------------------------------
  15. # $Id: select.test,v 2.0 1992/10/16 04:50:09 markd Rel $
  16. #------------------------------------------------------------------------------
  17. #
  18.  
  19. if {[info procs test] != "test"} then {source testlib.tcl}
  20.  
  21. catch {select} msg
  22. if {"$msg" == "select is not available on this version of Unix"} {
  23.     echo "**** $msg"
  24.     echo "**** tests skipped"
  25.     return
  26. }
  27.  
  28. pipe pipe1ReadFh pipe1WriteFh
  29. fcntl $pipe1WriteFh nobuf 1
  30.  
  31. pipe pipe2ReadFh pipe2WriteFh
  32. fcntl $pipe2WriteFh nobuf 1
  33.  
  34. set pipeReadList   [list $pipe1ReadFh  $pipe2ReadFh]
  35. set pipeWriteList  [list $pipe1WriteFh $pipe2WriteFh]
  36.  
  37. Test iocmds-1.1 {select tests} {
  38.     select $pipeReadList $pipeWriteList {} 0.5
  39. } 0 [list {} $pipeWriteList {}]
  40.  
  41. Test iocmds-1.2 {select tests} {
  42.     puts $pipe1WriteFh "Written to pipe 1"
  43.     set ret [select $pipeReadList $pipeWriteList {} 0.5]
  44.     list $ret [gets $pipe1ReadFh]
  45. } 0 [list [list $pipe1ReadFh $pipeWriteList {}] "Written to pipe 1"]
  46.  
  47. Test iocmds-1.3 {select tests} {
  48.     puts $pipe2WriteFh "Written to pipe 2"
  49.     set ret [select $pipeReadList $pipeWriteList {} 0.5]
  50.     list $ret [gets $pipe2ReadFh]
  51. } 0 [list [list $pipe2ReadFh $pipeWriteList {}] "Written to pipe 2"]
  52.  
  53. Test iocmds-1.4 {select tests} {
  54.     puts $pipe1WriteFh "Written to pipe 1"
  55.     puts $pipe2WriteFh "Written to pipe 2"
  56.     set ret [select $pipeReadList $pipeWriteList {} 0.5]
  57.     list $ret [gets $pipe1ReadFh] [gets $pipe2ReadFh]
  58. } 0 [list [list $pipeReadList $pipeWriteList {}] "Written to pipe 1" \
  59.           "Written to pipe 2"]
  60.  
  61. Test iocmds-1.5 {select tests} {
  62.     select $pipeReadList $pipeWriteList {} 0
  63. } 0 [list {} $pipeWriteList {}]
  64.  
  65. Test iocmds-1.6 {select tests} {
  66.     puts $pipe1WriteFh "Written to pipe 1"
  67.     set ret [select $pipeReadList $pipeWriteList]
  68.     list $ret [gets $pipe1ReadFh]
  69. } 0 [list [list $pipe1ReadFh $pipeWriteList {}] "Written to pipe 1"]
  70.  
  71. Test iocmds-1.7 {select tests} {
  72.     puts $pipe1WriteFh "Written to pipe 1"
  73.     set ret [select $pipeReadList $pipeWriteList {} 0]
  74.     list $ret [gets $pipe1ReadFh]
  75. } 0 [list [list $pipe1ReadFh $pipeWriteList {}] "Written to pipe 1"]
  76.  
  77. Test iocmds-1.8 {select tests} {
  78.     puts $pipe1WriteFh "Written to pipe 1 #1"
  79.     puts $pipe1WriteFh "Written to pipe 1 #2"
  80.     set ret1 [select $pipeReadList $pipeWriteList {} 0]
  81.     set data1 [gets $pipe1ReadFh]
  82.     set ret2 [select $pipeReadList $pipeWriteList {} 0]
  83.     set data2 [gets $pipe1ReadFh]
  84.     list $ret1 $data1 $ret2 $data2
  85. } 0 [list [list $pipe1ReadFh $pipeWriteList {}] "Written to pipe 1 #1" \
  86.           [list $pipe1ReadFh $pipeWriteList {}] "Written to pipe 1 #2"]
  87.  
  88.  
  89. Test iocmds-2.1 {select tests} {
  90.     select foo $pipeWriteList {} 0
  91. } 1 {bad file identifier "foo"}
  92.  
  93. Test iocmds-2.2 {select tests} {
  94.      select $pipeReadList $pipeWriteList {} X
  95. } 1 {expected floating-point number but got "X"}
  96.  
  97.